package com.example.sys.org.controller;

import com.example.core.controller.BaseTreeController;
import com.example.core.utils.Result;
import com.example.sys.org.constant.OrgConstant;
import com.example.sys.org.po.SysElement;
import com.example.sys.org.service.SysElementService;
import com.example.sys.org.vo.SysElementVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RequestMapping(value = "sysElement")
@RestController
public class SysElementController extends BaseTreeController<SysElementService, SysElementVo> {

    /***
     * 获取部门信息树,只可以选择部门。
     * @return
     */
    @GetMapping(value = "getDeptTree")
    public Result getDeptTree() {
        try {
            List<SysElement> list = getService().findTreeList(OrgConstant.DEPT);
            return Result.success(list);
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error(e.getMessage());
        }
    }

    /***
     * 获取用户信息树,只可以选择用户。
     * @return
     */
    @GetMapping(value = "getUserTree")
    public Result getUserTree() {
        try {
            List<SysElement> list =  getService().findTreeList(OrgConstant.PERSON);
            return Result.success(list);
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error(e.getMessage());
        }
    }

    /***
     * 获取用户部门树，可以选择部门用户。
     * @return
     */
    @GetMapping(value = "getUserDeptTree")
    public Result getUserDeptTree() {
        try {
            List<SysElement> list =  getService().findTreeList(OrgConstant.USER_DEPT_GROUP);
            return Result.success(list);
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error(e.getMessage());
        }
    }
}
